package com.huangd.platform.modules.sys.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 菜单管理
 *
 * @author huangd
 * @email
 * @date 2022-03-29 11:47:59
 */
@Data
@TableName("tbl_sys_menu")
@ApiModel("菜单实体类")
public class SysMenuEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @TableId
    @ApiModelProperty("菜单ID")
    private Long menuId;
    /**
     * 父菜单ID，一级菜单为0
     */
    @ApiModelProperty("父菜单ID，一级菜单为0")
    private Long parentId;
    /**
     * 菜单名称
     */
    @ApiModelProperty("菜单名称")
    private String name;
    /**
     * 菜单URL
     */
    @ApiModelProperty("菜单URL")
    private String url;
    /**
     * 授权(多个用逗号分隔，如：user:list,user:create)
     */
    @ApiModelProperty("授权(多个用逗号分隔，如：user:list,user:create)")
    private String perms;
    /**
     * 类型   0：目录   1：菜单   2：按钮  3:侧边栏按钮
     */
    @ApiModelProperty("类型   0：目录   1：菜单   2：按钮")
    private Integer type;
    /**
     * 菜单图标
     */
    @ApiModelProperty("菜单图标")
    private String icon;
    /**
     * 排序
     */
    @ApiModelProperty("排序")
    private Integer orderNum;

    /**
     * 组件
     */
    @ApiModelProperty("组件")
    private String component;

    /**
     * ztree属性
     */
    @ApiModelProperty("ztree属性")
    @TableField(exist = false)
    private Boolean open;

    @TableField(exist = false)
    private List<SysMenuEntity> list = new ArrayList<>();

    /**
     * 父菜单名称
     */
    @ApiModelProperty("父菜单名称")
    @TableField(exist=false)
    private String parentName;

}
